﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using com.nm.Attributes;

namespace VerticaAPI.model
{
    public class SizeTypeModel
    {
        [Description("获取系统尺码跟核心码列表")]
        public class AllParamModel
        {
            [ParamDescription("系统尺码(恒康)")]
            public IList<ErpSizeModel> ErpSizeList { get; set; }

            [ParamDescription("核心码与陈列量")]
            public IList<IGrouping<string, ShowModel>> SizeList { get; set; }

            [ParamDescription("数据的总条数")]
            public int SizeCount { get; set; }
        }

        public class ErpSizeModel
        {
            [ParamDescription("尺码")]
            public string SizeName { get; set; }
            [ParamDescription("是否核心码")]
            public long? SizeCoreFlag { get; set; }
        }

        public class SizeModel
        {
            [ParamDescription("城市全称")]
            public string FullName { get; set; }

            [ParamDescription("省ID")]
            public string ParentID { get; set; }

            [ParamDescription("城市ID")]
            public string AreaID { get; set; }

            [ParamDescription("商品区域")]
            public string ShopArea { get; set; }

            [ParamDescription("类别")]
            public string KindID { get; set; }

            [ParamDescription("性别")]
            public string SexName { get; set; }
            [ParamDescription("版型")]
            public string ClothesVersionCode { get; set; }


            [ParamDescription("F")]
            public int F { get; set; }

            [ParamDescription("S")]
            public int S { get; set; }

            [ParamDescription("XS")]
            public int XS { get; set; }
            [ParamDescription("XXS")]
            public int XXS { get; set; }

            [ParamDescription("M")]
            public int M { get; set; }

            [ParamDescription("L")]
            public int L { get; set; }

            [ParamDescription("XL")]
            public int XL { get; set; }

            [ParamDescription("XXL")]
            public int XXL { get; set; }

            [ParamDescription("3XL")]
            public int N3XL { get; set; }

            [ParamDescription("4XL")]
            public int N4XL { get; set; }

            [ParamDescription("JM")]
            public int JM { get; set; }

            [ParamDescription("25")]
            public long? N25 { get; set; }

            [ParamDescription("26")]
            public long? N26 { get; set; }

            [ParamDescription("27")]
            public int N27 { get; set; }

            [ParamDescription("28")]
            public int N28 { get; set; }

            [ParamDescription("29")]
            public int N29 { get; set; }

            [ParamDescription("30")]
            public int N30 { get; set; }

            [ParamDescription("31")]
            public int N31 { get; set; }

            [ParamDescription("32")]
            public int N32 { get; set; }

            [ParamDescription("33")]
            public int N33 { get; set; }

            [ParamDescription("34")]
            public int N34 { get; set; }

            [ParamDescription("35")]
            public int N35 { get; set; }

            [ParamDescription("36")]
            public int N36 { get; set; }

            [ParamDescription("37")]
            public int N37 { get; set; }

            [ParamDescription("38")]
            public int N38 { get; set; }

            [ParamDescription("39")]
            public int N39 { get; set; }

            [ParamDescription("40")]
            public int N40 { get; set; }

            [ParamDescription("41")]
            public int N41 { get; set; }

            [ParamDescription("42")]
            public int N42 { get; set; }

            [ParamDescription("43")]
            public int N43 { get; set; }

            [ParamDescription("44")]
            public int N44 { get; set; }

            [ParamDescription("45")]
            public int N45 { get; set; }
        }

        public class CreatModel : NeceModel
        {
            [ParamDescription("数据源")]
            public string ExtrSource { get; set; }
            [ParamDescription("公司代码")]
            public string CompanyID { get; set; }

            [ParamDescription("尺码类型")]
            public string SizeTypeFlag { get; set; }
            [ParamDescription("别名")]
            public string SizeName2 { get; set; }

            [ParamDescription("尺码ID")]
            public string SizeID { get; set; }

            [ParamDescription("读取时间")]
            public DateTime? LoadTime { get; set; }

        }

        public class NeceModel
        {
            [ParamDescription("城市编号")]
            public string AreaID { get; set; }

            [ParamDescription("尺码")]
            public string SizeName { get; set; }

            [ParamDescription("陈列量")]
            public long? DisplayQty { get; set; }

            [ParamDescription("类别")]
            public string KindID { get; set; }

            [ParamDescription("性别")]
            public string SexName { get; set; }

            [ParamDescription("是否核心码")]
            public long? SizeCoreFlag { get; set; }

            [ParamDescription("版型")]
            public string ClothesVersionCode { get; set; }
        }

        public class ImportModel
        {
            [ParamDescription("城市全称")]
            public string FullName { get; set; }

            [ParamDescription("城市编号")]
            public string AreaID { get; set; }

            [ParamDescription("尺码")]
            public string SizeName { get; set; }

            [ParamDescription("陈列量")]
            public string DisplayQty { get; set; }

            [ParamDescription("类别")]
            public string KindID { get; set; }

            [ParamDescription("性别")]
            public string SexName { get; set; }

            [ParamDescription("是否核心码")]
            public string SizeCoreFlag { get; set; }

            [ParamDescription("版型")]
            public string ClothesVersionCode { get; set; }
        }
        public class CreatImportModel  
        {
            [ParamDescription("数据源")]
            public string ExtrSource { get; set; }
            [ParamDescription("公司代码")]
            public string CompanyID { get; set; }

            [ParamDescription("尺码类型")]
            public string SizeTypeFlag { get; set; }
            [ParamDescription("别名")]
            public string SizeName2 { get; set; }

            [ParamDescription("尺码ID")]
            public string SizeID { get; set; }

            [ParamDescription("读取时间")]
            public DateTime? LoadTime { get; set; }

            [ParamDescription("城市编号")]
            public string AreaID { get; set; }

            [ParamDescription("尺码")]
            public string SizeName { get; set; }

            [ParamDescription("陈列量")]
            public string DisplayQty { get; set; }

            [ParamDescription("类别")]
            public string KindID { get; set; }

            [ParamDescription("性别")]
            public string SexName { get; set; }

            [ParamDescription("是否核心码")]
            public string SizeCoreFlag { get; set; }

            [ParamDescription("版型")]
            public string ClothesVersionCode { get; set; }

        }


        public class ListModel
        {
            [ParamDescription("城市全称")]
            public string FullName { get; set; }
            [ParamDescription("修改列表")]
            public IList<NeceModel> Children { get; set; }
            [ParamDescription("城市ID")]
            public string CityID { get; set; }
            [ParamDescription("城市ID1")]
            public string AreaID { get; set; }
            [ParamDescription("类别")]
            public string KindID { get; set; }
            [ParamDescription("性别")]
            public string SexName { get; set; }
            [ParamDescription("版型")]
            public string ClothesVersionCode { get; set; }

        }

        public class ErrorModel
        {
            [ParamDescription("城市全称")]
            public string FullName { get; set; }

            [ParamDescription("省ID")]
            public string ParentID { get; set; }

            [ParamDescription("城市ID")]
            public string AreaID { get; set; }

            [ParamDescription("商品区域")]
            public string ShopArea { get; set; }

            [ParamDescription("类别")]
            public string KindID { get; set; }

            [ParamDescription("性别")]
            public string SexName { get; set; }
            [ParamDescription("版型")]
            public string ClothesVersionCode { get; set; }


            [ParamDescription("F")]
            public long? F { get; set; }

            [ParamDescription("S")]
            public long? S { get; set; }
            [ParamDescription("XS")]
            public long? XS { get; set; }
            [ParamDescription("XXS")]
            public long? XXS { get; set; }
            [ParamDescription("M")]
            public long? M { get; set; }

            [ParamDescription("L")]
            public long? L { get; set; }

            [ParamDescription("XL")]
            public long? XL { get; set; }

            [ParamDescription("XXL")]
            public long? XXL { get; set; }

            [ParamDescription("3XL")]
            public long? N3XL { get; set; }

            [ParamDescription("4XL")]
            public long? N4XL { get; set; }

            [ParamDescription("JM")]
            public long? JM { get; set; }

            [ParamDescription("25")]
            public long? N25 { get; set; }

            [ParamDescription("26")]
            public long? N26 { get; set; }

            [ParamDescription("27")]
            public long? N27 { get; set; }

            [ParamDescription("28")]
            public long? N28 { get; set; }

            [ParamDescription("29")]
            public long? N29 { get; set; }

            [ParamDescription("30")]
            public long? N30 { get; set; }

            [ParamDescription("31")]
            public long? N31 { get; set; }

            [ParamDescription("32")]
            public long? N32 { get; set; }

            [ParamDescription("33")]
            public long? N33 { get; set; }

            [ParamDescription("34")]
            public long? N34 { get; set; }

            [ParamDescription("35")]
            public long? N35 { get; set; }

            [ParamDescription("36")]
            public long? N36 { get; set; }

            [ParamDescription("37")]
            public long? N37 { get; set; }

            [ParamDescription("38")]
            public long? N38 { get; set; }

            [ParamDescription("39")]
            public long? N39 { get; set; }

            [ParamDescription("40")]
            public long? N40 { get; set; }

            [ParamDescription("41")]
            public long? N41 { get; set; }

            [ParamDescription("42")]
            public long? N42 { get; set; }

            [ParamDescription("43")]
            public long? N43 { get; set; }

            [ParamDescription("44")]
            public long? N44 { get; set; }

            [ParamDescription("45")]
            public long? N45 { get; set; }
        }


        public class ModifyModel
        {
            [ParamDescription("修改列表")]
            public IList<ListModel> list { get; set; }
        }

        public class ShowModel : NeceModel
        {
            [ParamDescription("城市名称")]
            public string AreaName { get; set; }
            [ParamDescription("城市全名")]
            public string FullName { get; set; }
        }

        public class ChartModel
        {
            [ParamDescription("尺码")]
            public string SizeName { get; set; }

            [ParamDescription("展示数量")]
            public long DisplayQtySum { get; set; }

        }

        public class GenderModel
        {
            [ParamDescription("性别")]
            public string SexName { get; set; }
        }
        public class KindModel
        {
            [ParamDescription("类别编号")]
            public string KindID { get; set; }
            [ParamDescription("类别名称")]
            public string KindName { get; set; }
        }
        public class ClothesVersionModel
        {
            [ParamDescription("版型编号")]
            public string ClothesVersionCode { get; set; }
            [ParamDescription("版型名称")]
            public string ClothesVersionName { get; set; }
        }

    }

    /// <summary>
    /// 尺码表
    /// </summary>
    public class OdsErpSDMatSize
    {
        public class ModifyModel
        {
            [ParamDescription("尺码ID")]
            public string SizeID { get; set; }
            [ParamDescription("尺码")]
            public string SizeName { get; set; }
            [ParamDescription("尺码排序")]
            public string SizeCodeSort { get; set; }
        }

        public class ListModel : ModifyModel
        {
            [ParamDescription("尺码类型")]
            public string SizeCodeType { get; set; }
            [ParamDescription("品类ID")]
            public string ModelID { get; set; }
        }

        public class ShowModel
        {
            public List<IGrouping<string, ListModel>> list { get; set; }
        }
    }
}
